#ifndef TRBOLT_H
#define TRBOLT_H

/*
inteface to access external resources
like irrlicht and bullet in a moduler
way for reusable core game code
*/

/*
these are non 'stroke()' per tik
method based objects. they are accessed by
stroke() method objects on an 'as-needed' basis
*/

/*
it is the job of the writer of bolts for different
external libraries to make sure the external library stays
in sync with any tetra shell protocol code they wish to
remain portable
*/

/*
the use of trBolt objects makes this example possible:

<custom logic code base with trGameObject3dgfx>

SHOULD be able to use either, say:
trGraphicsBoltIrrlicht

OR

trGraphicsBoltOgre

they should have the same basic needs* interface but just a
different backend and maybe a few auxilery fetures per
external graphics library.
*/


#include "trGameWorld.h"
#include "trGameDevice.h"

namespace tetra
{

class trGameWorld;
class trGameDevice;

class trBolt : public trEventNode
{

    trGameWorld* world;//world it shares a connection to

    trGameDevice* game_device; //game device

    const irr::core::stringc external_libary; //name of external library

public:

    //! Default constructor
    trBolt();

    //! Destructor
    ~trBolt();


};

}; //end namespace tetra

#endif //TRBOLT_H
